package cn.iocoder.yudao.module.member.service.newsStudyInfo;

import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.member.controller.admin.newsStudyInfo.vo.*;
import cn.iocoder.yudao.module.member.dal.dataobject.newsStudyInfo.NewsStudyInfoDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.member.dal.dataobject.newsStudyInfo.NewsStudyRankingDO;

/**
 * 新闻信息(成果信息) Service 接口
 *
 * @author 管理员
 */
public interface NewsStudyInfoService {

    /**
     * 创建新闻信息(成果信息)
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createNewsStudyInfo(@Valid NewsStudyInfoCreateReqVO createReqVO);

    /**
     * 更新新闻信息(成果信息)
     *
     * @param updateReqVO 更新信息
     */
    void updateNewsStudyInfo(NewsStudyInfoUpdateReqVO updateReqVO);


    void updateTopping(Long id,Integer isTop);

    /**
     * 删除新闻信息(成果信息)
     *
     * @param id 编号
     */
    void deleteNewsStudyInfo(Long id);



    boolean updateBatch(NewsStudyInfoIdReqVO newsStudyInfoIdReqVO);
    /**
     * 获得新闻信息(成果信息)
     *
     * @param id 编号
     * @return 新闻信息(成果信息)
     */
    NewsStudyInfoDO getNewsStudyInfo(Long id);

    /**
     * 获得新闻信息(成果信息)列表
     *
     * @param ids 编号
     * @return 新闻信息(成果信息)列表
     */
    List<NewsStudyInfoDO> getNewsStudyInfoList(Collection<Long> ids);

    /**
     * 获得新闻信息(成果信息)分页
     *
     * @param pageReqVO 分页查询
     * @return 新闻信息(成果信息)分页
     */
    PageResult<NewsStudyInfoDO> getNewsStudyInfoPage(NewsStudyInfoPageReqVO pageReqVO);

    /**
     * 获得新闻信息(成果信息)列表, 用于 Excel 导出
     *
     * @param exportReqVO 查询条件
     * @return 新闻信息(成果信息)列表
     */
    List<NewsStudyInfoDO> getNewsStudyInfoList(NewsStudyInfoExportReqVO exportReqVO);

    /**
     * 获得新闻信息(成果信息)列表
     *
     * @param type 编号
     * @return 新闻信息(成果信息)列表
     */
    List<NewsStudyRankingDO> getNewsStudyRankingList(Integer type);

    void deleteNewsRankingInfo(String queryType,Long id , Integer type );

    void rankingInfoSort(NewsStudyRankingIdReqVO rankingIdReqVO);

    NewsStudyInfoDO getNewsStudyInfoById(  Long id);

    void updateViewNum(Long id);

}
